home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
DJGPP
/
CBGRX103.ZIP
/
contrib
/
libgrx
/
docs
/
readme.grx
< prev
next >
Wrap
Text File
|
1993-12-06
|
5KB
|
134 lines
README for GRX 1.03 beta release
================================
This is file README.GRX. It can be found at the beta7 distribution site
and also in the DOCS sub-directory of the GRX archive. This file contains
additional information about the new graphics-related features of GO32,
the new graphics drivers and GRX 1.03.
What is in this release?
------------------------
This is an intermediate release based on my working sources. This version
does not yet work with DPMI. On the other hand, it has been modified to work
with the new (.VDR) drivers. These drivers together with the modifications
in GO32 1.11 allow the use of more than 1MB of video RAM. Virtual screens
larger than the displayed screen are also supported, together with a GO32
function to change the start of the displayed region (pan). The beta GO32
1.11 already has a new format built-in VESA driver.
This version only supports display modes which were present in GRX 1.02.
(I.e. 16, 256, 32K colors and accelerated S3/8514A 256 color modes.) I don't
intend to finish the missing display modes in the current page-fault based
video RAM access mode. Currently I am working on a new set of low-level GRX
video RAM access routines which will use explicit paging. These will support
DPMI graphics with >64K frame buffers. As soon as these are finished and
tested there will be another GRX release.
The other new feature of this release is that all thick and patterned
line primitives (which were missing from GRX 1.02) are present in this
version.
New driver interface
--------------------
The format of the VDR drivers can be found in the "grdriver.h" file in
the GO32 source directory or in the NDRIVERS directory of the GRX archive.
The built-in driver in GO32 should work with any VESA compatible SVGA card.
Older (.GRD or .GRN) drivers still work with the new GO32 and graphics
library. There is a small change in the driver specification part of the
GO32 environment variable:
SET GO32=driver <driver_name>::<driver_options> tw ...
^^^^^^^^^^^^^^^^^^
new fields
If the name of the driver is followed by two colons and a string then this
string is taken as an option string for the driver. GO32 configures the driver
according to the characters in this string when the driver is loaded. (Which
now happens only when the driver is first used.) The option string is
ignored for .GRD and .GRD drivers.
The option string can contain the following characters (in any order, case
does not matter):
p: Enables protected mode paging. For .VDR drivers the default is to use
the driver's paging function in real mode. This is necessary because
the VESA BIOS paging function was written for real mode. However, many
VESA BIOS-es are well written, and their paging function can be used
in protected mode. Give it a try, if it fails then you have to use
real mode paging which is MUCH slower. (paging with .GRD and .GRN
drivers is always in protected mode)
f: Enables fast 256 color mode. On some SVGA cards the planar, mode X-like
256 color memory organization can be used even in SVGA modes. There are
a few operations (especially horizontal scan line fills) which can
be much faster in this mode. Give it a try -- and if you see garbage
on the screen then it does not work with your card.
5: This field is necessary only if your VESA BIOS is version 1.1 or older
and the 64K (16 bit) color mode reported by it is really only a 32K
(15 bit) mode. You can find out your VESA version number and a lot of
other VESA related stuff by running the VESAINFO program in the
NDRIVERS directory of the GRX archive.
If you want to use the built-in GO32 driver with options use the following
syntax:
SET GO32 = driver ::pf5 tw ...
When using a new .VDR driver with GO32 1.11 the video memory is mapped as
follows:
0xd0000000 .. 0xd0100000 old 1MB RW area
0xd0100000 .. 0xd0200000 old 1MB R0 area
0xd0200000 .. 0xd0300000 old 1MB W0 area
0xd1000000 .. 0xd2000000 new 16MB RW area
0xd2000000 .. 0xd3000000 new 16MB R0 area
0xd3000000 .. 0xd4000000 new 16MB W0 area
GRX 1.03 uses the 1MB areas whenever the frame buffer is less then 1MB,
otherwise it uses the 16MB areas.
GO32 1.11 supports the following new int 0x10 calls:
Mode set with virtual screen sizes:
Input:
ax = 10 // = GR_custom_graphics
bx = colors
cx = desired screen width
dx = desired screen height
VDR_driver_header.virtual_x = desired virtual width
VDR_driver_header.virtual_y = desired virtual heigth
Output:
bx = mode descriptor bits
cx = actual screen width
dx = actual screen height
VDR_driver_header.virtual_x = actual virtual width
VDR_driver_header.virtual_y = actual virtual heigth
Inquire driver header linear address:
Input:
ax = 0xfffe
Output:
eax = linear address of driver header in real memory. (Add 0xe0000000
when used in non-DPMI modes of the extender). Use this buffer
for passing the virtual screen parameters to the driver.
Call driver paging function in real mode:
Input:
ax = 0xfffd
bl = read page
bh = write page
Output: none
Set displayed screen start when virtual screen > displayed screen
Input:
ax = 0xfffc
cx = X position
dx = Y position
Output: none